#ifndef __INTERFACE_H__
#define __INTERFACE_H__

#ifdef DLL_EXPORT
#define SHARED_API __declspec(dllexport)
#else
#define SHARED_API __declspec(dllimport)
#endif

namespace shared
{
	class __declspec(dllexport) SharedObject
	{
	public:
		virtual bool __cdecl open() = 0;
		virtual int  __cdecl get_value() = 0;
		virtual void __cdecl release() =0;	
	protected:
		~SharedObject(){};	
	};
}

using namespace shared;
extern "C"
{
	SHARED_API SharedObject*  __stdcall createObject();
	SHARED_API void __stdcall releaseObject(SharedObject* obj);
}


#endif /** __INTERFACE_H__*/